package com.yc.cloud.admin.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * PTZ控制请求DTO
 *
 * @author kinggu
 * @since 2025-09-18
 */
@Data
@Accessors(chain = true)
@Schema(description = "PTZ控制请求参数")
public class PtzControlReqDTO {


    @Schema(description = "控制命令", example = "stop", 
            allowableValues = {"stop", "up", "down", "left", "right", "zoom_in", "zoom_out"})
    @NotBlank(message = "控制命令不能为空")
    private String command;

    @Schema(description = "水平速度(0-255)", example = "0")
    @Min(value = 0, message = "水平速度不能小于0")
    @Max(value = 255, message = "水平速度不能大于255")
    private Integer horizonSpeed = 0;

    @Schema(description = "垂直速度(0-255)", example = "0")
    @Min(value = 0, message = "垂直速度不能小于0")
    @Max(value = 255, message = "垂直速度不能大于255")
    private Integer verticalSpeed = 0;

    @Schema(description = "缩放速度(0-255)", example = "0")
    @Min(value = 0, message = "缩放速度不能小于0")
    @Max(value = 255, message = "缩放速度不能大于255")
    private Integer zoomSpeed = 0;
}